package ar.uba.fi.tecnicas.vista;

import java.util.*;

import javax.swing.JComboBox;

import ar.uba.fi.tecnicas.fabrica.*;
import ar.uba.fi.tecnicas.fabrica.Terreno.ModoAdquisicion;
import ar.uba.fi.tecnicas.juego.Juego;

public class GeneradorControles 
{
	public static JComboBox getComboTerrenos()
	{
		JComboBox cbTerrenos = new JComboBox();
		
		Collection<Terreno> terrenos = Juego.instancia.getTerrenos();		
		
		for(Terreno terreno : terrenos)
		{
			String descTerreno = terreno.getAncho() + "x" + terreno.getAlto();
			descTerreno += " - Compra: " + terreno.getPrecio(ModoAdquisicion.Compra);
			descTerreno += " - Alquiler: " + terreno.getPrecio(ModoAdquisicion.Alquiler);

			cbTerrenos.addItem(descTerreno);
		}

		return cbTerrenos; 
	}
	
	public static JComboBox getComboModoAdquisicion() 
	{
		JComboBox cbModoAdquisicion = new JComboBox();
		
		cbModoAdquisicion.addItem("Compra");
		cbModoAdquisicion.addItem("Alquiler");

		return cbModoAdquisicion;
	}
	
	public static JComboBox getComboLineas()
	{
		JComboBox cbLineaProduccion = new JComboBox();
		
		for(LineaProduccion linea : Juego.instancia.getJugador().getLineasProduccion())
		{
			cbLineaProduccion.addItem(linea.getNombre());
		}
		
		return cbLineaProduccion; 
	}
	
	public static JComboBox getComboTipoMaquina()
	{
		JComboBox cbTipoMaquina = new JComboBox();
		
		for(TipoMaquina tipo : Juego.instancia.getTiposMaquina())
		{
			String descTipoMaquina = tipo.getNombre();
			
			if(tipo.getTransformacion() != null)
			{
				descTipoMaquina += " - Transformacion: " + tipo.getTransformacion().getNombre();
			}

			descTipoMaquina += " - $ " + tipo.getPrecio();

			cbTipoMaquina.addItem(descTipoMaquina);
		}
		
		return cbTipoMaquina;
	}

	public static JComboBox getComboTiposMateriPrima() 
	{
		JComboBox cbTipoMateriPrima = new JComboBox();
		
		for(TipoMateriaPrima tipo : Juego.instancia.getTiposMateriaPrima())
		{
			String descTipo = tipo.getNombre();
			descTipo += " - $ " + tipo.getPrecio();

			cbTipoMateriPrima.addItem(descTipo);
		}
		
		return cbTipoMateriPrima;
	}
}
